// Singleton.js

export class Singleton {
    static getInstance<T extends {}>(this: new () => T): T {
        if (!(<any>this).instance) {
            (<any>this).instance = new this()
        }
        return (<any>this).instance
    }
}
// export default class Singleton {
//     static instance: any;

//     constructor() {
//         if (typeof Singleton.instance === 'object') {
//             return Singleton.instance;
//         }
//         Singleton.instance = this;
//     }

//     static getInstance() {
//         if (!Singleton.instance) {
//             Singleton.instance = new this();
//         }
//         return Singleton.instance;
//     }
// }